According to the X-10 protocol, each device has an address.
It is the philosophy of XTension that you assign a NAME to each of your devices, such that you should never have to use the absolute X-10 address of any unit in any of your scripts.
It is intended that you always use the unit name instead.
Once you have several devices, it is much easier to remember a name like "Front Door Light" than it is to remember "B7".
Although you may physically connect several lamps to a single module or several modules with the same address, the natural tendency is to split these up and control them individually.
Normally XTension will warn you if you try to assign an address which has already been used. Although you will have to change the XTension preferences, you can create multiple named items which have the same hardware address. Commanding any will obviously control all, however, only the named item will be changed in the database.
If you know what you are doing, ok, but remember to set the preferences back so that you don’t do this by mistake.
Current state or value and 'future' state or value...
Note that the current value and time stamp are not changed in the database until after the ON or OFF script has been executed. This is especially useful for scripts which would want to know what the status of the unit was before this new stimulus occurred.
For scripts that need to know what the new analog value 'will be', there is a reserved word 'future value' which can be tested within a script. This value is only valid for 'dimmable' units which have no address. (pseudos)
Time stamp of current state or value
Regardless of the type, any time when an item in the database is changed, it will be time stamped.
This time stamp can be queried in scripts, either as an absolute time, or as a number of seconds between the current time and the time stamp of the specified unit.
The time stamp cannot be changed to any value other than the current time.
Script for ON event ( or null )
This is the script that is executed any time an attempt is made to turn this unit ON.
This script is pertinent to analog units. Regardless of the imminent change to an analog unit in the database, this script is executed, and never the OFF script.
Please notice that this may be defeated by 'blocking' the unit.
Script for OFF event ( or null )
This is the script that is executed any time an attempt is made to turn this unit OFF.
This script is not pertinent to analog units. Regardless of the imminent change to an analog unit in the database, the ON script is executed.
Please notice that this may be defeated by 'blocking' the unit.